Kernel bypass 這個名詞時常聽到,卻一直不理解其背後的含義 —— 這是一種繞過 Linux 的 TCP/IP 網路通訊協定疊等作業系統核心,直接讓應用程式與網路卡或儲存設備等硬體進行通訊的技術。其旨在大幅降低延遲並提高 high concurrency 的吞吐量,適用於超融合架構、高效能計算、即時串流等對微秒級延遲極度敏感的領域。今天我們就來簡單介紹它的用途與運作原理,以及其在高頻交易系統中的應用!
1. Kernel Bypass 的核心優勢與實現方式
在傳統的作業系統架構中,當網路封包到達網路卡時會經歷以下流程,進而產生不必要的效能損耗。
而 kernel bypass 能透過以下機制解決上述性能瓶頸。
其主流技術代表如下。
2. 高頻交易網路優化
在高頻交易領域,網路延遲通常以奈秒或微秒為單位進行競爭。為了在交易所發布行情或匹配訂單時搶佔先機,HFT 架構會將傳統的 Linux 網路棧完全剝離,轉而採用更高規格的硬體與軟體優化技術。
以下是高頻交易中核心的網路優化策略與技術架構。
3. 軟硬體架構實作要點
在 HFT 業界,已被 AMD 收購的 Solarflare 網卡是標準配備,其提供了兩種核心的 kernel bypass 軟體層技術。
recv()、send() 等 POSIX Socket API,讓現有的 C/C++ 交易程式不需要修改程式碼就能享有 kernel bypass 帶來的低延遲。硬體層同樣存在巨大的優化空間,最具代表性的技術便是「現場可程式化邏輯門陣列」。當軟體優化到小於 1 微秒的極致後,下一個瓶頸就是 CPU 與 PCI-E 總線。為此,HFT 團隊會將核心交易邏輯直接燒錄在網卡上的 FPGA 晶片中。
4. OS Tuning —— Linux 作業系統極致調校
為了確保交易程式在執行時不會受到系統干擾,Linux 系統會進行以下設定。
isolcpus 隔離 CPU 核心:在 Linux 啟動參數中將特定的 CPU 核心隔離,不讓作業系統將一般進程分配到這些核心。pthread_setaffinity_np 綁定線程:將交易的核心策略執行緒與專門處理網卡 polling 的執行緒固定在被隔離的 CPU 核心上。while(true) 迴圈不斷去讀取 busy polling 網卡緩衝區,雖然 CPU 會 100% 滿載,但換來的是零中斷延遲。5. 高頻交易網路的隱形殺手 —— 排隊延遲與微突發
HFT 除了追求 average latency ,更看重 tail latency。交易所可能在幾微秒內湧入數萬筆行情更新,導致 switch 或網卡的 buffer 瞬間溢滿,也就是所謂的 micro-burst 微突發。
為了防範其帶來的長尾延遲,HFT 網路架構會採用超低延遲交換器:例如業界常見的 Arista 7150 系列;或是更進一步採用基於 FPGA 技術、具備奈秒級 Layer 1 轉發能力的 Arista 7130 系列。這類交換機能在幾個奈秒內完成複製與分發,並具備精準的硬體時間戳記以精確分析封包在微秒級間的排隊狀況。